/**
	License:		Artistic license 2.0 (see license.txt, also available online at http://www.perlfoundation.org/artistic_license_2_0)
	Authors:		OrbitalLab (http://www.orbitallab.ru/moonglide/), 2007-2009

	File:			IRendererBind.d
	Description:	bind stuff for renderer
	Date:			20.11.2007 by Digited
*/
module moonglide.renderer.IRendererBind;

public import
	moonglide.resources.Management,
	moonglide.core.engobjects.EngLight;

//================================================================
/// Renderer & Resources Bind
//================================================================
interface IRendererBind
{
	CEngLight[] curLights();

    void simpleMeshBind(bool b);
    bool simpleMeshBind();

	void bindTexture( CResTexture Tex );
	void unBindTexture( CResTexture Tex );

	void bindShader( CResShaderComposite sh );
	void unBindShader( CResShaderComposite sh );


	void bindMesh( CResMesh Mesh );
	void unBindMesh( CResMesh Mesh );

	void bindMaterial( CResMaterial mat );
	void unBindMaterial( CResMaterial mat );

	void bindLight( CEngLight lig );
	void unBindLight( CEngLight lig );
	void unBindLights();
}
